package projeto.administrativo.usuarios.cgd;

import java.util.List;

import javax.persistence.Query;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.dao.SaltSource;
import org.springframework.security.authentication.encoding.PasswordEncoder;
import org.springframework.stereotype.Repository;

import plataforma.autenticacao.cdp.GrupoAcesso;
import plataforma.autenticacao.cdp.Usuario;
import plataforma.crudestatico.cgd.DaoBase;

@Repository
public class DaoUsuario extends DaoBase<Usuario> {



	

	public List<Usuario> recuperarTodos(GrupoAcesso grupoSelecionado) {
		String hql = "select distinct u from Usuario u "
				+ " where :codigoGrupo in elements(u.grupoAcesso)";

		Query query = getEntityManager().createQuery(hql);
		query.setParameter("codigoGrupo", grupoSelecionado.getId());

		return query.getResultList();

	}

	@Override
	public Usuario recuperarPorId(Long id) {
		String hql = "select distinct u from Usuario u "
				+ " left outer join fetch u.grupoAcesso" + " where u.id=:parId";

		Query query = getEntityManager().createQuery(hql);
		query.setParameter("parId", id);

		return (Usuario) query.getSingleResult();
	}




}
